When testing a circuit using an automatic test system, inputs are provided to the circuit under test, and the resulting outputs are detected and compared with expected outputs. In an in-circuit test, the system electronics has access to each lead of the individual components on a board under test through a bed-of-nails fixture, and the individual components are tested in turn. The goal of in-circuit testing is to electrically isolate each device from its surrounding circuitry so that it can be tested individually. In addition to providing inputs directly to the input pins of the particular component being tested, inputs are provided to other components that affect the condition at inputs of the particular component being tested.
When there are a plurality of devices connected to a node, e.g., a bus, a single faulty device could provide failure conditions on the node during testing of plural devices, and further analysis is required to identify which of the devices connected to the node is the faulty one. Examples of causes of faults on nodes are an output that is stuck at a high or low state, a tristate device enable that is malfunctioning, an input that is shorted internally, and a pull-up that is shorted or missing.
Determining which device is at fault can be complicated by the fact that different device technologies exhibit different output characteristics. Each device on a bus has an output stage that can drive the bus high, drive it low, or go into an off mode. Advanced Schottky (AS) devices, for example, have a low output impedance and can drive the bus with ample current. Complementary metal oxide semiconductor (CMOS) devices, by contrast, have little or no current drive capability. Each technology also has a clamping voltage for either the high or low driving state. Because of the range of driving capabilities for different technologies, it is difficult to distinguish the faulty device by measurement alone. Diagnosing bus node failures can also be further complicated by certain device failure modes. For example, combinational CMOS devices can become sequential, causing failures only at certain times.
Most existing in-circuit test systems use a current forcing/measurement technique and one or two simple rules to diagnose bus failures. For example, Busch, "Bus Architectures - A Practical Solution to Component-Level Fault Diagnostics", IEEE 1984 Proceedings of the ATE Central Conference, pp. II-10 through II-15 describes a system which attempts to find the bad device by measuring the amount of current in the node being supplied by the bad device. Each device is brought in turn to the failing stuck-at state, and the current is measured again. The premise is that the failing device will not contribute any additional current beyond that which it is providing while stuck and will be spotted in this way.